Network Protocol Programming in Haskell

نویسنده

  • Kazu Yamamoto
چکیده

Over seven years, we have developed several network protocol libraries including anti-spam, DNS, HTTP/1.1, HTTP/2 and TLS 1.3 in Haskell. Based on these experiences, we regard Haskell as a safe and highly-concurrent network programming language thanks to its strong type system and lightweight threads (i.e. green threads). This paper describes advantages and disadvantages of Haskell and reports our experiences. Haskell is typically described as a purely functional programming language. Unfortunately, this catch-phrase gives programmers an impression that is difficult to approach. Roughly speaking, pure means that Haskell’s type system clearly separates pure functions (i.e. without side effects) and impure functions (i.e. with side effects), and prevents pure functions from calling impure functions. Functional indicates that Haskell encourages modular programming with immutable data which provides consistency for concurrent programming.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Analysis and Modeling of VoIP Servers: A Linear Programming Approach

The SIP protocol was standardized by the IETF at the application layer for initiating, managing, and terminating multimedia sessions and has been widely used as the main signaling protocol on both the Internet and VoIP networks. Most challenges in this protocol are overload and lack of proper state distribution. These challenges cause a wide range of next-generation network users to face a shar...

متن کامل

Building .NET GUIs for Haskell applications

.NET is an emerging Microsoft’s project which promotes a new framework for Software Development emphasizing the use of Internet resources and the interaction between components written in different programming languages. Whereas functional programming languages such as Haskell are well-suited for developing tools to analyze, verify and transform programs, typical Haskell compilers do not provid...

متن کامل

Implementation of Protocol

Implementation of network protocol stacks is time-consuming and error prone due to its complex and performance-critical nature. The project Implementation of Protocol Stacks (IPS), addresses this problem by developing a high-level statically typed language to facilitate the efficient implementation of network protocol stacks. This report presents the accomplishments for the first year of PhD st...

متن کامل

Programming Modular Synthesizers in Haskell

In this demonstration, we present an implementation of a modular synthesizer in Haskell using Yampa. A synthesizer, be it a hardware instrument or a pure software implementation, as here, is said to be modular if it provides sound-generating and sound-shaping components that can be interconnected in arbitrary ways. Yampa, a Haskell-embedded implementation of Functional Reactive Programming, sup...

متن کامل

On Two Infinite Families of Pairing Bijections

We describe two general mechanisms for producing pairing bijections (bijective functions defined from N2 → N). The first mechanism, using n-adic valuations results in parameterized algorithms generating a countable family of distinct pairing bijections. The second mechanism, using characteristic functions of subsets of N provides 2N distinct pairing bijections. Mechanisms to combine such pairin...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017